#include<iostream>
#include<vector>

using namespace std;
/*
编写一个函数，`find_min`，它有两个参数 `i` 和 `array`，
`find_min` 可以在 `array` 中，从位置 `i` 开始，找到其中最小的数字，并返回。

例如：

对于数组 `vector<int> array {1, 2, 3, 4, 5, 6, 7};` 来说：

* `find_min(0, array)` 返回 1；
* `find_min(1, array)` 返回 2；
* `find_min(4, array)` 返回 5；
* 以此类推；
*/
int find_min_idx(int i, vector<int> array) {
  int currentMin = array[i];
  int currentPos = i;

  for(int b = i+1; b < array.size(); b++) {
    if (array[b] < currentMin) {
      currentMin = array[b];
      currentPos = b;
    }
  }
  return currentPos;
}

vector<int> selectionSortRecurrsive(int startPos, vector<int> array) {
  if (startPos == array.size() - 1) {
    return array;
  }

  int currentPos = find_min_idx(startPos, array);
  swap(array[startPos], array[currentPos]);

  return selectionSortRecurrsive(startPos + 1, array);
}

int main(int argc, char const *argv[]) {
  vector<int> array {1, 0, 2, -1, 8, 9, 22};
  cout << find_min(3, array);
  return 0;
}
